package flapjack.conf;
import javax.servlet.ServletContextListener;
import org.glassfish.jersey.servlet.ServletContainer;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.FilterRegistrationBean;
import org.springframework.boot.context.embedded.ServletListenerRegistrationBean;
import org.springframework.context.annotation.Bean;
import com.google.inject.servlet.GuiceFilter;
/**
* Main entry point into the application.
* Runs an embedded tomcat instance as currently configured.
*
* @author ray
*/
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) throws Exception {
new SpringApplicationBuilder(Application.class)
.showBanner(false)
.run(args);
}
@Bean
public FilterRegistrationBean guiceFilter() {
FilterRegistrationBean filter = new FilterRegistrationBean(new GuiceFilter());
filter.setOrder(1);
return filter;
}
@Bean
public FilterRegistrationBean jerseyFilter() {
FilterRegistrationBean filter = new FilterRegistrationBean(new ServletContainer());
filter.addInitParameter("jersey.config.server.provider.packages", "flapjack.controller");
filter.addInitParameter("jersey.config.servlet.filter.forwardOn404", "true");
filter.addInitParameter("jersey.config.server.provider.classnames", "flapjack.conf.CambridgeMvcFeature");
filter.addInitParameter("javax.ws.rs.Application", "flapjack.conf.JerseyConfig");
filter.setOrder(2);
return filter;
}
@Bean
public ServletListenerRegistrationBean<ServletContextListener> guiceServlet() {
return new ServletListenerRegistrationBean<ServletContextListener>(new GuiceConfig());
}
}